package com.junzhiit.nengji.cms.service;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.junzhiit.nengji.cms.web.vo.DataTablesParamVO;
import com.junzhiit.nengji.cms.web.vo.ResultVO;
import com.junzhiit.nengji.cms.web.vo.SystemUserAddVO;
import com.junzhiit.nengji.cms.web.vo.SystemUserEditVO;
import com.junzhiit.nengji.cms.web.vo.SystemUserListVO;
import com.junzhiit.nengji.cms.web.vo.SystemUserRoleListVO;
import com.junzhiit.nengji.model.SystemUser;
import com.intranet.transport.object.ResultTO;

public interface SystemUserService {

	public Map<String, Object> findAll(DataTablesParamVO dtp, SystemUserListVO systemUserListVO);

	public Map<String, Object> findAllByPlatform(DataTablesParamVO dtp, SystemUserListVO systemUserListVO);

	public ResultVO add(SystemUserAddVO sua);

	public SystemUser findById(String systemUserId);

	public ResultVO edit(String id, SystemUserEditVO sue);

	/**
	 * 
	 * TODO 根据店铺ID 冻结/解冻账号
	 * 
	 * @author PeterMo
	 * @time 2018年1月20日 下午2:03:45
	 * @return ResultVO
	 */
	public ResultVO updateStatus(String id, Integer status);

	/**
	 * 
	 * TODO 检查手机是否被注册
	 * 
	 * @author PeterMo
	 * @time 2018年1月26日 上午10:13:40
	 * @return ResultVO
	 */
	public ResultVO checkPhone(String mobilePhone);

	/**
	 * 
	 * TODO 添加系统用户角色
	 * 
	 * @author FebRosy
	 * @time 2018年3月15日 上午9:09:06
	 * @return int
	 */
	public int addSystemUserRole(SystemUserRoleListVO systemUserRoleListVO);

	/**
	 * 
	 * TODO 获取用户权限
	 * 
	 * @author FebRosy
	 * @time 2018年3月19日 下午2:12:34
	 * @return ResultVO
	 */
	public ResultVO getSystemUserFunctions(String sessionId);

	/**
	 * 
	 * TODO 更新用户状态
	 * 
	 * @author FebRosy
	 * @time 2018年3月21日 下午3:32:44
	 * @return ResultVO
	 */
	public ResultVO updateSystemUserStatus(String id, int status);

	/**
	 * 
	 * TODO 初始化用户权限
	 * 
	 * @author FebRosy
	 * @time 2018年3月26日 上午9:35:15
	 * @return ResultVO
	 */
	public ResultVO initPower(SystemUserAddVO systemUserAddVO);
	
	/**
	 * 
	 * TODO 修改当前系统用户
	 * @author Zaki
	 * @time 2018年5月2日 下午2:26:45
	 * @return ResultVO
	 */
	public ResultVO editUser(String id, SystemUserEditVO systemUserEditVO,HttpServletResponse response);
	
	/**
	 * 
	 * TODO 根据sessionId查询账号信息
	 * @author Zaki
	 * @time 2018年5月3日 下午4:08:58
	 * @return SystemUser
	 */
	public SystemUser findBySessionId(String sessionId);
	
	/**
	 * 新增代理商帐号
	 * @param sysUser
	 * @return
	 */
	public ResultTO addAgent(SystemUser sysUser);

	/**
	 * 激活/取消 代理商帐号
	 * @param systemId
	 * @return
	 */
	public ResultVO switchActivationStatus(String systemId, int status);
	
	/**
	 * 更新代理商帐号
	 * @param sysUser
	 * @return
	 */
	public ResultTO updateAgent(SystemUser sysUser);
}
